package dy.app.base;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.Date;

/**
 * 基础DO类 其他DO均继承此类
 * Author: cKnight
 * Date: 2024/6/11
 */
@Data
public class BaseDO {

    /**
     * 主键 自增 只读 数据库层面添加
     */
    @TableId(value = "id", type = IdType.AUTO)
    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    private Integer id;

    /**
     * 创建人 拦截器层面添加
     */
    @TableField(value = "create_by",fill = FieldFill.INSERT)
    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    private String createBy;

    /**
     * 更新人 拦截器层面添加
     */
    @TableField(value = "update_by" ,fill = FieldFill.INSERT_UPDATE)
    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    private String updateBy;

    /**
     * 创建时间 数据库层面添加
     */
    @TableField(value = "create_time")
    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    private Date createTime;

    /**
     * 最后更新时间 数据库层面添加
     */
    @TableField(value = "update_time")
    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    private Date updateTime;

    /**
     * 逻辑删除 自主添加条件 数据库层面添加
     */
    @TableLogic()
    @TableField(value = "del_flag")
    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    private int delFlag;
}
